/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package INTERFAZ;

import CONTROLES.ControlEmpresa;
import CONTROLES.ControlSucursal;
import CONTROLES.ControlSueldo;
import MODELOS.Empresa;
import MODELOS.Sucursal;
import MODELOS.Sueldo;
import UTILITARIOS.Herramienta;
import UTILITARIOS.PanelPickFechas;
import UTILITARIOS.StringToDate;
import UTILITARIOS.UTextField;
import java.awt.BorderLayout;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Date;
import java.util.StringTokenizer;
import javax.swing.JFrame;
import javax.swing.*;
import javax.swing.border.TitledBorder;



/**
 *
 * @author Administrador
 */
public class FormSueldo extends JDialog implements Propiedades{

//     ControlUsuario control;

    private JLabel lblTitulo;

    private JPanel titulo;
    private JPanel formulario;
    private JPanel botones;

    private JLabel lblIdSucursal;
    private Choice choiseIdSucursal;

    private JLabel lblEmpleado;
    private UTextField txtEmpleado;

    private JLabel lblSueldo;
    private UTextField txtSueldo;

    private JLabel espacio;
    
    private PanelPickFechas fechaNacimiento;

    private JButton btnAceptar;
    private JButton btnCancelar;

    ControlSucursal cSucursal;
    private ControlEmpresa emp = new ControlEmpresa();

    public FormSueldo()
    {

        setProperties();
        buildComponents();
        setPropertiesComponents();
        addComponents();
        addEvents();

    }





    public void setProperties() {
        setLayout(null);
		setSize(565, 280);
		setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
                setTitle("Pago de Sueldo");
		getContentPane().setBackground(Color.BLACK);
		setResizable(false);
    }

    public void buildComponents() {

        cSucursal = new ControlSucursal();
        String lista[] = cSucursal.nombresSuc();

        lblIdSucursal = new JLabel("Sucursal : ", JLabel.RIGHT );
        choiseIdSucursal = new Choice();
        for(int i = 0; i<lista.length; i++)
           choiseIdSucursal.add(lista[i]);
        setChoiseIdSucursal(Bienvenida.sucursal.getIdSucursal()+"-"+Bienvenida.sucursal.getNombreSuc());

        lblTitulo = new JLabel("Registro/Edición de Empresa");

        lblEmpleado = new JLabel("Nombre del Empleado(*) : ", JLabel.RIGHT );
        txtEmpleado = new UTextField(UTextField.ONLY_CARACTERS_VALUE);
        

        lblSueldo = new JLabel("Sueldo a Pagar(*) : ", JLabel.RIGHT );
        txtSueldo = new UTextField(UTextField.INT_VALUE);

        fechaNacimiento = new PanelPickFechas("Fecha de Pago(*) : ");


        espacio = new JLabel();


        titulo = new JPanel();
        formulario = new JPanel();
        botones = new JPanel();

        btnAceptar = new JButton("PAGAR SUELDO");
        btnCancelar = new JButton("CANCELAR");
    }

    public void setPropertiesComponents() {
        titulo.setLayout(new BorderLayout(1,1));
        titulo.setSize(new Dimension(560,253));
        //titulo.setBackground(Color.DARK_GRAY);
        titulo.setBorder(BorderFactory.createTitledBorder(null,"Datos del Sueldo",TitledBorder.CENTER , TitledBorder.DEFAULT_POSITION));
        //titulo.setLayout(new FlowLayout());

        formulario.setLayout(new FlowLayout());
        formulario.setSize(new Dimension(500,100));
        //formulario.setBackground(Color.WHITE);
       botones.setSize(250, 100);
      
        formulario.setBorder(Herramienta.createTitleBorder(""));
        botones.setBorder(BorderFactory.createTitledBorder(null,"ACCIONES",TitledBorder.CENTER , TitledBorder.DEFAULT_POSITION));

        Dimension dimLabel = new Dimension(130,20);
	Dimension dimText = new Dimension(290,20);
	Font fontLabel = new Font("Tahoma",Font.PLAIN,11);

        lblIdSucursal.setPreferredSize( dimLabel );
        lblIdSucursal.setFont(fontLabel);
        lblIdSucursal.setForeground(Color.BLACK);
        choiseIdSucursal.setPreferredSize( dimText );
        choiseIdSucursal.setEnabled(false);
        if(Bienvenida.user.getTipoUsuario().equalsIgnoreCase("ADMINISTRADOR") && Bienvenida.user.getToken().equalsIgnoreCase("INGRESAR") ){
       choiseIdSucursal.setEnabled(true);
       }else{
       choiseIdSucursal.setEnabled(false);
       }

                lblEmpleado.setPreferredSize( dimLabel );
		lblEmpleado.setFont(fontLabel);
                lblEmpleado.setForeground(Color.BLACK);
		txtEmpleado.setPreferredSize( dimText );
                txtEmpleado.setEnabled(false);
		

		lblSueldo.setPreferredSize(dimLabel);
		lblSueldo.setFont(fontLabel);
                lblSueldo.setForeground(Color.BLACK);
		txtSueldo.setPreferredSize(dimText);
                txtSueldo.setEnabled(false);

                fechaNacimiento.setPreferredSize(new Dimension(500, 50));

                espacio.setPreferredSize(new Dimension(400, 20));
		

                btnAceptar.setPreferredSize(new Dimension(160,20));
		btnCancelar.setPreferredSize(new Dimension(110,20));

		botones.setOpaque(false);

		btnAceptar.setToolTipText("guardar el sueldo");
                btnAceptar.setForeground(Color.BLACK);
		btnCancelar.setToolTipText("Cancelar la operación");
                 btnCancelar.setForeground(Color.BLACK);

		btnAceptar.setMnemonic('a');
		btnCancelar.setMnemonic('c');
    }




    public void addComponents() {

        formulario.add(lblIdSucursal);
        formulario.add(choiseIdSucursal);

        formulario.add(espacio);
        formulario.add(lblEmpleado);
        formulario.add(txtEmpleado);

        formulario.add(espacio);
       formulario.add(txtEmpleado);

        formulario.add(lblSueldo);
        formulario.add(txtSueldo);

        formulario.add(espacio);
        
        formulario.add(fechaNacimiento);

        
        botones.add(btnAceptar);
        botones.add(btnCancelar);

        //titulo.add(formulario,BorderLayout.NORTH);
        //titulo.add(botones,BorderLayout.SOUTH);

        //formulario.add(botones, BorderLayout.SOUTH);
        add(titulo);
        titulo.add( "Center",formulario);
        titulo.add("South",botones);
        //titulo.add(botones,BorderLayout.SOUTH);

        //add(formulario);


    }

    public void addEvents() {
       btnAceptar.addActionListener( new ActionListener(){
			public void actionPerformed(ActionEvent e) {

                            ControlSueldo su = new ControlSueldo();
                            Sueldo s = new Sueldo();
                            if(gettxtEmpleado().isEmpty() || gettxtSueldo().isEmpty() || getFechaNacimiento().isEmpty())
                            {
                                setVisible(false);
                                JOptionPane.showMessageDialog(null, "Se produjo un error al tratar de registrar el Sueldo o faltan campos por llenar", "Confirmación", JOptionPane.YES_OPTION);
                                setVisible(true);
                            }else
                            {

                            String ide = gettxtEmpleado();
                            StringTokenizer em = new StringTokenizer(ide,"-");
                            int idEmpleo = Integer.parseInt(em.nextToken());

                            String idSuc = getChoiseIdSucursal();
                             StringTokenizer i = new StringTokenizer(idSuc,"-");
                             int idSucursal = Integer.parseInt(i.nextToken());

                            double sueldo = Double.parseDouble(gettxtSueldo());

                            StringToDate conv = new StringToDate();
                            String fecha = getFechaNacimiento();
                            Date fechaNac = conv.convertir(fecha);

                            s.setIdEmpleado(idEmpleo);
                            s.setMontoSueldo(sueldo);
                            s.setFechaPago(fechaNac);
                            s.setIdUsuario(Bienvenida.user.getIdUsuario());
                            s.setIdSucursal(idSucursal);

                            su.guardarSueldo(s);
                            JOptionPane.showMessageDialog(null, "El pago del Sueldo ha sido Registrado CORRECTAMENTE ", "Confirmación", JOptionPane.INFORMATION_MESSAGE);
                            setearCampos();
                            dispose();
                            
                            BoletaPago boleta = new BoletaPago(new javax.swing.JFrame(), true,s);
                            Herramienta.centerOnScreen(boleta);
                            boleta.setVisible(true);
                            }

        		}
		});
                 btnCancelar.addActionListener( new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				//JOptionPane.showMessageDialog(null, "Gracias por utilizar el sistema ", "Adventencia", JOptionPane.OK_OPTION);
                                //System.exit(0);
                            dispose();
			}
		});


               addWindowListener( new WindowAdapter(){
			@Override
			public void windowClosing(WindowEvent e) {
				//JOptionPane.showMessageDialog(null, "Seguro que quiere salir", "Adventencia", JOptionPane.OK_OPTION);
                                //System.exit(0);
                                dispose();

                        }
		});
    }

    

    public String gettxtEmpleado() {
        String emp;
        return emp=txtEmpleado.getText();
    }

    public void settxtEmpleado(String txtEmpleado) {
        this.txtEmpleado.setText(txtEmpleado);
    }

    
    public String gettxtSueldo() {
        
        return txtSueldo.getText();
    }

    public void settxtSueldo(String txtSueldo) {
        this.txtSueldo.setText(txtSueldo);
    }

    public String getFechaNacimiento() {
        return fechaNacimiento.getDateText();
    }

    public void setFechaNacimiento(String fechaNacimiento) {
        this.fechaNacimiento.setDate(fechaNacimiento);
    }

    public String getChoiseIdSucursal() {
        return choiseIdSucursal.getSelectedItem();
    }

    public void setChoiseIdSucursal(String choiseIdSucursal) {
        this.choiseIdSucursal.select(choiseIdSucursal);
    }


    public void setearCampos()
    {
        settxtEmpleado("");
        
        
    }

    public static void main(String args[])
    {
        FormSueldo n = new FormSueldo();
        n.setVisible(true);

    }


}
